import http from 'wechat-http'

http.baseURL = 'http://localhost:8080'
// http.baseURL = 'https://article.api.abzykj.cn'

/**
 * 挂载方法到全局
 */
wx.http = http
/**
 * 模块导出
 */
module.exports = {
  http
}
http.intercept.request = (params) => {

  // 读取全局实例中的 token
  const { token } = getApp()
  
  // 指定一个公共的头信息
  // 初始为空对象后续可以扩展
  const defaultHeader = {
    'Authorization':''
  }
  // 追加 token 头信息
  // if (token) defaultHeader.Authorization = 'Bearer ' + wx.getStorage('token')
  defaultHeader['Authorization'] = 'Bearer ' + wx.getStorageSync('token')

  // 合并自定义头信息和公共头信息
  params.header = Object.assign(defaultHeader, params.header)
  // 处理后的请求参数
  return params

}

http.intercept.response = async ({
  code,
  data,
  token
}) => {
  var token = wx.getStorageSync('token');
  // 接下来就是开始进行无感刷新token
  if (token == undefined || data.code === 401) {
    // const app = getApp()
    // if (config.url.includes('/refreshToken')) {
    //   app.token = ""
    //   app.refreshToken = ""
    //   wx.clearStorage()
    //   const redirect = getCurrentPages()[getCurrentPages().length - 1].route
      wx.redirectTo({
        url: '/pages/login/index?redirect=/',
      })
    //   return
    }
    // console.log(wx.getStorageSync('token'), '刷新的token');
    // const res = await http({
    //   url: "/refreshToken",
    //   method: "post",
    //   header: {
    //     // 注意这里是要设置的是refreshtoken
    //     Authorization: 'Bearer ' + wx.getStorageSync('refreshToken')
    //   }
    // })
    // if (res !== undefined) {
    //   // 3.设置全局的token以及refreshToken
    //   app.token = res.data.token
    //   app.refreshToken = res.data.refreshToken
    //   // 4.将token存入本地
      // wx.setStorage({
      //   key: 'token',
      //   data: data.data.token
      // })
    //   wx.setStorage({
    //     key: 'refreshToken',
    //     data: res.data.refreshToken
    //   })
    //   // // 返回之前的请求报文
    //   return http(
    //     Object.assign(config, {
    //       // 传递新的 token
    //       header: {
    //         Authorization: 'Bearer ' + wx.getStorageSync('token'),
    //       },
    //     })
    //   )
    // }else{
    //   return {}
    // }


  // }
  return data
}

